package com.ruoyi.voucher.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 凭证主表对象 voucher
 *
 * @author ruoyi
 * @date 2025-02-25
 */
public class Voucher extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 凭证ID */
    private Long voucherId;

    /** 凭证字号 */
    @Excel(name = "凭证字号", required = false)
    private String voucherNo;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd", required = false)
    private Date voucherDate;

    /** 账期YYYYMM */
    @Excel(name = "账期YYYYMM", required = false)
    private String accountPeriod;

    /** 附单据数量 */
    @Excel(name = "附单据数量", required = false)
    private Long attachmentCount;

    /** 合计金额 */
    @Excel(name = "合计金额", required = false)
    private BigDecimal totalAmount;

    /** 剩余可冲销金额 */
    @Excel(name = "剩余可冲销金额", required = false)
    private BigDecimal remainingAmount;

    /** 审核人ID */
    @Excel(name = "审核人ID", required = false)
    private Long auditorId;

    /** 审核状态 */
    @Excel(name = "审核状态", required = false)
    private String auditStatus;

    public void setAuditStatus(String auditStatus) {
        this.auditStatus = auditStatus;
    }

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd", required = false)
    private Date auditTime;

    /** 作废状态 */
    @Excel(name = "作废状态", required = false)
    private Integer isVoid;

    /** 作废时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "作废时间", width = 30, dateFormat = "yyyy-MM-dd", required = false)
    private Date voidTime;

    /** 红冲时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "红冲时间", width = 30, dateFormat = "yyyy-MM-dd", required = false)
    private Date reversalTime;

    /** 账套ID */
    @Excel(name = "账套ID", required = false)
    private Long accountId;

    /** 凭证字ID */
    @Excel(name = "凭证字ID", required = false)
    private Long wordId;

    /** 创建人 */
    @Excel(name = "创建人", required = false)
    private String creator;

    /** 修改人 */
    @Excel(name = "修改人", required = false)
    private String modifier;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd", required = false)
    private Date modifyTime;

    /** 逻辑删除 */
    private Integer isDeleted;

    /** 版本号 */
    private Long version;

    public String getAuditStatus() {
        return auditStatus;
    }

    public void setVoucherId(Long voucherId)
    {
        this.voucherId = voucherId;
    }

    public Long getVoucherId()
    {
        return voucherId;
    }
    public void setVoucherNo(String voucherNo)
    {
        this.voucherNo = voucherNo;
    }

    public String getVoucherNo()
    {
        return voucherNo;
    }
    public void setVoucherDate(Date voucherDate)
    {
        this.voucherDate = voucherDate;
    }

    public Date getVoucherDate()
    {
        return voucherDate;
    }
    public void setAccountPeriod(String accountPeriod)
    {
        this.accountPeriod = accountPeriod;
    }

    public String getAccountPeriod()
    {
        return accountPeriod;
    }
    public void setAttachmentCount(Long attachmentCount)
    {
        this.attachmentCount = attachmentCount;
    }

    public Long getAttachmentCount()
    {
        return attachmentCount;
    }
    public void setTotalAmount(BigDecimal totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount()
    {
        return totalAmount;
    }
    public void setRemainingAmount(BigDecimal remainingAmount)
    {
        this.remainingAmount = remainingAmount;
    }

    public BigDecimal getRemainingAmount()
    {
        return remainingAmount;
    }
    public void setAuditorId(Long auditorId)
    {
        this.auditorId = auditorId;
    }

    public Long getAuditorId()
    {
        return auditorId;
    }



    public void setAuditTime(Date auditTime)
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime()
    {
        return auditTime;
    }
    public void setIsVoid(Integer isVoid)
    {
        this.isVoid = isVoid;
    }

    public Integer getIsVoid()
    {
        return isVoid;
    }
    public void setVoidTime(Date voidTime)
    {
        this.voidTime = voidTime;
    }

    public Date getVoidTime()
    {
        return voidTime;
    }
    public void setReversalTime(Date reversalTime)
    {
        this.reversalTime = reversalTime;
    }

    public Date getReversalTime()
    {
        return reversalTime;
    }
    public void setAccountId(Long accountId)
    {
        this.accountId = accountId;
    }

    public Long getAccountId()
    {
        return accountId;
    }
    public void setWordId(Long wordId)
    {
        this.wordId = wordId;
    }

    public Long getWordId()
    {
        return wordId;
    }
    public void setCreator(String creator)
    {
        this.creator = creator;
    }

    public String getCreator()
    {
        return creator;
    }
    public void setModifier(String modifier)
    {
        this.modifier = modifier;
    }

    public String getModifier()
    {
        return modifier;
    }
    public void setModifyTime(Date modifyTime)
    {
        this.modifyTime = modifyTime;
    }

    public Date getModifyTime()
    {
        return modifyTime;
    }
    public void setIsDeleted(Integer isDeleted)
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted()
    {
        return isDeleted;
    }
    public void setVersion(Long version)
    {
        this.version = version;
    }

    public Long getVersion()
    {
        return version;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("voucherId", getVoucherId())
            .append("voucherNo", getVoucherNo())
            .append("voucherDate", getVoucherDate())
            .append("accountPeriod", getAccountPeriod())
            .append("attachmentCount", getAttachmentCount())
            .append("totalAmount", getTotalAmount())
            .append("remainingAmount", getRemainingAmount())
            .append("auditorId", getAuditorId())
            .append("auditStatus",getAuditStatus())
            .append("auditTime", getAuditTime())
            .append("isVoid", getIsVoid())
            .append("voidTime", getVoidTime())
            .append("reversalTime", getReversalTime())
            .append("accountId", getAccountId())
            .append("wordId", getWordId())
            .append("creator", getCreator())
            .append("createTime", getCreateTime())
            .append("modifier", getModifier())
            .append("modifyTime", getModifyTime())
            .append("isDeleted", getIsDeleted())
            .append("version", getVersion())
            .toString();
    }
}
